package com.huluobo.a2107jetpackkotlindemo.lifecycle

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.widget.TextView
import com.huluobo.a2107jetpackkotlindemo.R
import com.huluobo.a2107jetpackkotlindemo.databinding.ActivityMainBinding

/**
 * ViewBinding总结:
 * 1.首先使用时需要在build.gradle中开启开关 enable=true
 * 2.开启之后所有的xml文件都会对应生成一个类,也就是由xml文件名生成的驼峰命名法的实现类
 * 3.重点*****Activity的setContentView和Fragment onCreateView中的返回 不能直接引用id,需要使用binding的root才能找到视图
 * 4;.viewBinding的特点,具有控安全,视图(控件)绑定会对view直接引用
 * 5.具有类型的安全性,不需要类型准换,可以自动匹配xml中控件的类型
 */
class MainActivity : AppCompatActivity() {

    private lateinit var activityMainBinding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(activityMainBinding.root)
//        setContentView(R.layout.activity_main)
//        TipDialog(this)
//        Handler().postDelayed({
//            finish()
//        }, 2000)

        //通过Activity的findViewById方法找到对应的View进行绑定
//        val text = findViewById<TextView>(R.id.text)

        //黄油刀 ButterKnife 通过注解的形式啦进行控件的注入
//        @BindView(R.id.text)
//        val text
        activityMainBinding.mainText.text = "这是textView"
    }

}